﻿using System;
using System.Collections.Generic;
using Tibet.Logica.Excepciones;
using Tibet.Datos;
using Tibet.Entidades;
using System.Data;

namespace Tibet.Logica
{
    public class Cliente
    {

        private String _nombre;
        private String _logo;
        private String _estado;
    	private int _id;


	    ///<summary>
        ///Descripción: Get y Set del atributo _id
        ///<summary>
        public int Id
        {
            get { return _id; }
            set { _id = value; }
        }

        ///<summary>
        ///Descripción: Get y Set del atributo _status
        ///<summary>
        public String Estado
        {

            get { return _estado; }
            set { _estado = value; }

        }

        ///<summary>
        ///Descripción: Get y Set del atributo _nombre
        ///</summary>
        public String Nombre
        {

            get { return _nombre; }
            set { _nombre = value; }

        }

        ///<summary>
        ///Descripción: Get y Set del atributo _logo
        ///</summary>
        public String Logo
        {

            get { return _logo; }
            set { _logo = value; }

        }

        ///<summary>
        ///Descripcion: Método que consulta un cliente en la BD.
        ///</summary>
        /*
        public bool ConsultarCliente(string nombreCliente)
        {
            AccesoCliente miAcceso = new AccesoCliente();
           return miAcceso.ExisteClienteEnBd(nombreCliente);            
            
            
        }
        */

        ///<summary>
        ///Descripcion: Método que consulta todos cliente en la BD.
        ///</summary>
        /*
        public List<Entidades.Cliente> ConsultarTodosClientes()
        {
            AccesoCliente acceso = new AccesoCliente();
            List<Entidades.Cliente> lista = acceso.ConsultarClientes();
            return lista;
        }
        */

        ///<summary>
        ///Descripcion: Método que inserta un cliente en la BD
        ///</summary>
        /*
        public bool CrearCliente(String nombre)
        {

            try
            {
                //AccesoCliente no existe, debe ser cambiado a DAO
                AccesoCliente miAcceso = new AccesoCliente();
                return miAcceso.InsertarCliente(nombre);
            }
            catch (ExcepcionConexionBD AccesoBD)///Problemas con conexion a BD
            {
                return false;
            }
            catch (ExcepcionQuery ErrorBD)///Error al hacer query en BD
            {
                return false;
            }
            catch (Exception e)///Captura los demas errores
            {
                return false;
            }

        }
         * */

        ///<summary>
        ///Descripcion: Método que consulta si existe un cliente en la BD.
        ///</summary>
        public Boolean RevisarCliente(Cliente cliente)
        {
            
            
            
            this.Nombre = "Prueba";
            this.Estado = "activo";
            this.Logo = "ruta";

            try
            {

                ///Consulta en base de datos si existe el cliente
			
			if (this.Nombre != cliente.Nombre)
                return true;
            else
                return false;

            }
            catch (ExcepcionConexionBD AccesoBD)///Problemas con conexion a BD
            {

            }
            catch (ExcepcionQuery ErrorBD)///Error al hacer query en BD
            {

            }
            catch (ArgumentNullException ValorNulo)///Base de datos retorna valor nulo
            {

            }
            catch (Exception e)///Captura los demas errores
            {

            }

            return false;
            
        }

        ///<summary>
        ///Descripcion: Método que modifica un cliente en la BD
        ///</summary>
        public void ModificarCliente()
        {
            try
            {

                ///Modifica el cliente en BD

            }
            catch (ExcepcionConexionBD AccesoBD)///Problemas con conexion a BD
            {

            }
            catch (ExcepcionQuery ErrorBD)///Error al hacer query en BD
            {

            }
            catch (Exception e)///Captura los demas errores
            {

            }
			

        }

        ///<summary>
        ///Descripción: Método para conocer si existe un cliente con su nombre aparte de el 
        ///</summary>
        ///
        /*
        public bool ExisteCliente(String cliente)
        {
            //AccesoCliente no existe, debe ser cambiado a DAO
            AccesoCliente miCliente = new AccesoCliente();
            
            return  miCliente.ExisteClienteEnBd(cliente);

        }
         * */
        

        ///<summary>
        ///Descripción: Método para verificar en BD si un cliente esta activo o inactivo en el sistema
        ///Variable: Boolean: retornoStatus
        ///Devuelve: True si el estado es activo y false si el estado es inactivo
        ///</summary>
        public Boolean VerificarEstadoCliente()
        {

            Boolean retornoStatus = false;

            try
            {

                ///Consulta en base de datos el estatos del cliente

            }
            catch (ExcepcionConexionBD AccesoBD)///Problemas con conexion a BD
            {

            }
            catch (ExcepcionQuery ErrorBD)///Error al hacer query en BD
            {

            }
            catch (ArgumentNullException ValorNulo)///Base de datos retorna valor nulo
            {

            }
            catch (Exception e)///Captura los demas errores
            {

            }
            
            return retornoStatus;

        }


        ///<summary>
        ///Descripción: metodo para pasar a la capa de datos el nombre del cliente para qu devuelva la busqueda
        ///</summary>
        /*

        public DataTable BusquedaCliente(String nombre)
        {
            //AccesoCliente no existe, debe ser cambiado a DAO
            AccesoCliente miAcceso = new AccesoCliente();
            return miAcceso.BuscarCliente(nombre);
            
        }
         * */
    }
}